import { set } from "lodash-es";
import type { LocaleType } from "@/types/config";

export const loadLocalePool: LocaleType[] = ["en", "vi"];

export function setHtmlPageLang(locale: LocaleType) {
	document.querySelector("html")?.setAttribute("lang", locale);
}

export function setLoadLocalePool(cb: (loadLocalePool: LocaleType[]) => void) {
	cb(loadLocalePool);
}

export function genMessage(langs: Record<string, Record<string, any>>, prefix = "lang") {
	const obj: Recordable = {};

	Object.keys(langs).forEach(key => {
		const langFileModule = langs[key].default;
		let fileName = key.replace(`./${prefix}/`, "").replace(/^\.\//, "");
		const lastIndex = fileName.lastIndexOf(".");
		fileName = fileName.substring(0, lastIndex);
		const keyList = fileName.split("/");
		const moduleName = keyList.shift();
		const objKey = keyList.join(".");
		// console.log("moduleName", moduleName)
		// console.log("objKey", objKey)
		if (moduleName) {
			if (objKey) {
				set(obj, moduleName, obj[moduleName] || {});
				set(obj[moduleName], objKey, langFileModule);
			} else {
				set(obj, moduleName, langFileModule || {});
			}
		}
	});
	// console.log("obj", obj)
	return obj;
}
